With the increasing prevalence and popularity of mobile computing, users are increasingly demanding for constant and continuous availability of content thereby making mobile computing a dominant force in personal computing. With advances in mobile technology, a plethora of portable electronic devices (mobile clients) such as laptops computers, handheld devices and the like, promise to deliver the vision of accessing user data anytime, anywhere. However, in the absence of a continuous wireless connectivity, it becomes imperative to provide support for disconnected operations in mobile environments. Wireless links are slow, sometimes unreliable, expensive to implement and use and are not available to all users.
Hoarding (caching) is a technique that allows users, for example mobile users, to locally cache content on a mobile client and then accesses the cached content even while the mobile client is operational in a disconnected mode. Hoarding is used for selecting content set, for example a set of documents or files or any other specific form of data, and caching the content set on a mobile client. The cached content set may be used when mobile client is disconnected for example from the network. This allows anytime, anywhere access to data on a mobile client and is advantageous in supporting off line access to content. To ensure that the client can continue to access all the necessary files, the hoarding scheme may cache some files that the client never uses during that particular period when the client is disconnected. This leads to loading the client with information and files that are unnecessary and hence leads to consumption of disk space and resources, which are limited on a mobile client.
Often constraints, such as the device memory and the like on the mobile client are not sufficiently large to accommodate the content set that has been requested and hence a decision needs to be made on the content set that is required to be hosted on the mobile client. A normal hoarding process requires the mobile client to be synchronized with a main system, for example a server, from where the content set is being fetched. Hoarding and user behavior analyzing engines are placed typically on the server side in order to analyze the tracking data; to create user models and to decide on what materials should be included in the content set. Existing solutions to this problem rely on solutions that are a combination of hoard profiles and spying on a users file access. Neither of these approaches is ideal in terms of user friendliness and reliability. In fact one of the problems with mobile clients is that they are primarily disconnected entities that connect to and disconnect from the servers at the clients' discretion.
Assuming the existence of an anytime, anywhere, on-demand wireless communication service, a cache miss while disconnected is an expensive proposition due to the cost and re-establishing communications with the servers. The goal of hoarding (caching) is to eliminate cache misses entirely during periods when the mobile client is disconnected. For example, consider a user who travels. Prior to disconnection the user runs the applications intended for use while traveling thereby filling the local disk cache appropriately. A disadvantage with this is, in addition to being inconvenient; a program may require different files for different types of executions. No single execution reveals the full gamut of an application's file access. In another case, the user may specify precisely the files and directories to be hoarded in a hoard profile. This approach is more cumbersome and unreliable. An additional disadvantage of this approach is that creating an accurate hoard profile is not trivial. For example, even a conscientious user might not be able to accurately specify all of the files needed by a specific program. A further disadvantage is that when a mobile user is disconnected a cache miss could mean a significant loss in time, money and a complete halt to work if critical information has not been cached.
These disadvantages are magnified if critical cache misses occur during disconnected operations. The penalty of such cache misses is very high and may prevent a disconnected client from continuing its operation altogether. A further disadvantage is that the hoarding systems do not work well for personal information appliances that provide access to information that cannot be neatly organized and that do not have a recurring access pattern. A further disadvantage is that mobile computing devices have constraints such as battery power, signal strength, network bandwidth etc., which are not taken into consideration in present hoarding systems.
Without a way to improve the method and system of hoarding, the promise of this technology may never be fully achieved.